criteriabuilder的所有方法

2024-09-28 14:19:05 14 Admin
常州网站建设

 

CriteriaBuilder类是JPA Criteria API中最重要的类之一,它用于构建查询,排序和复杂条件。

 

CriteriaBuilder类中包含了众多方法,我们将逐一介绍这些方法并提供详细的代码说明。

 

1. createCriteriaQuery():创建CriteriaQuery对象,表示一个查询。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

CriteriaQuery query = cb.createQuery(User.class);

```

 

2. createTupleQuery():创建TupleQuery对象,用于返回结果集的Tuple形式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

CriteriaQuery query = cb.createTupleQuery();

```

 

3. createQuery():创建Query对象,用来执行查询。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

CriteriaQuery query = cb.createQuery(User.class);

Query q = entityManager.createQuery(query);

```

 

4. createPredicate():创建Predicate对象,表示一个条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.equal(root.get("name")

"John");

```

 

5. conjunction():创建一个AND组合的Predicate。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.conjunction();

```

 

6. disjunction():创建一个OR组合的Predicate。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.disjunction();

```

 

7. greaterThan():创建一个大于的条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.greaterThan(root.get("age")

30);

```

 

8. greaterThanOrEqualTo():创建一个大于等于的条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.greaterThanOrEqualTo(root.get("age")

30);

```

 

9. lessThan():创建一个小于的条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.lessThan(root.get("age")

30);

```

 

10. lessThanOrEqualTo():创建一个小于等于的条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.lessThanOrEqualTo(root.get("age")

30);

```

 

11. equal():创建一个等于的条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.equal(root.get("name")

"John");

```

 

12. notEqual():创建一个不等于的条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.notEqual(root.get("name")

"John");

```

 

13. isNull():创建一个为NULL的条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.isNull(root.get("name"));

```

 

14. isNotNull():创建一个不为NULL的条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.isNotNull(root.get("name"));

```

 

15. like():创建一个LIKE的条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.like(root.get("name")

"%John%");

```

 

16. or():创建一个OR条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.or(pred1

pred2);

```

 

17. and():创建一个AND条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.and(pred1

pred2);

```

 

18. between():创建一个BETWEEN的条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.between(root.get("age")

20

30);

```

 

19. exists():创建一个EXISTS的条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Subquery sq = query.subquery(Long.class);

Root subRoot = sq.from(Department.class);

sq.select(cb.count(subRoot));

sq.where(cb.equal(subRoot.get("name")

root.get("department")));

Predicate condition = cb.exists(sq);

```

 

20. not():创建一个NOT条件表达式。

 

```java

CriteriaBuilder cb = entityManager.getCriteriaBuilder();

Predicate condition = cb.not(pred);

```

 

以上就是CriteriaBuilder类中的一些常用方法,这些方法可以帮助我们构建各种复杂的查询条件,使得JPA Criteria API更加强大和灵活。通过这些方法的组合和嵌套,我们可以实现几乎任何类型的查询需求。

Copyright © 悉地网 2018-2024.All right reserved.Powered by XIDICMS 备案号:苏ICP备18070416号-1